from django.core.files.storage import Storage
from django.conf import settings
from fdfs_client.client import Fdfs_client

class FdfsStorage(Storage):
    def __init__(self):
        #初始化属性值，可以指定fdfs的配置地址
        self.client_conf = settings.FDFS_CLIENT
        self.fdfs_url = settings.FDFS_URL

    def open(self, name, mode='rb'):
        #打开文件，读取文件的功能有storage提供，此处不需要携带吗
        pass

    def save(self, name, content, max_length=None):
        #保存，将文件保存到fastdfs
        #创建
        client = Fdfs_client(self.client_conf)
        #保存
        result = client.upload_by_buffer(content.read())
        #返回文件名
        return result.get('Remote file_id')

    def url(self, name):
        #获取访问图片的url地址
        return self.fdfs_url+name

    def exists(self, name):
        #判断文件是否存在，将文件保存到fastdfs，本地无文件
        return False

